草庐IT

c++ - std::move 操作 C++

全部标签

c++ - 将 GetVersionEx 数字转换为操作系统名称

我有这个列表:2.5.1.26002.5.2.37902.6.0.60002.6.0.60012.6.0.60022.6.1.76002.6.1.7601这是一个窗口版本列表,信息来自GetVersionEx,数字是:dwPlatformId.dwMajorVersion.dwMinorVersion.dwBuildNumber我想知道这些数字的Windows版本名称,例如:“WinXPSP2”我试过谷歌搜索,但我发现了不同的信息,在某些地方,一个数字是XPSP2,而在其他地方,相同的是SP3。我可以将5.0识别为Win2000,将5.1识别为XP,等等。但我还想要SP版本,如果它是P

c++ - 当用户启动注销/关机操作时停止应用程序

我有一个同事提供的这个应用程序(用VisualC++编写的Windows窗体应用程序),我遇到了一些严重的问题。该应用程序既不是服务也不是普通应用程序,我的意思是它有一个GUI,但大多数时候它在后台运行(它应该作为服务使用react,但事实并非如此)。此应用程序正在阻止用户注销,我需要能够做到这一点。我知道当用户尝试注销时,Windows会向所有正在运行的应用程序发送WM_QUERYENDSESSION消息。我试图在我的WndProc()函数上捕获此消息并强制终止该应用程序,但它只能运行一次。当我再次登录并尝试注销时,操作并未终止,因为我的应用程序不会关闭。如果我尝试使用Session

c - Arduino 和 Windows 串行通信问题?

我正在从事一个项目,该项目涉及在连接到ArduinoMega设备的Windows732位平台上的VisualStudio2010Proffesional中实现的一些“c”串行通信(以控制一些硬件**与问题无关)。此代码100%有效;我遇到的唯一问题是我的串行通信发生了一些非常有趣的事情。VisualC程序如下。HANDLEhDevice=CreateFile(L"COM5",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,0);//OpenCOMhandle(createf

.net - 7 个 64 位操作系统上带有 32 位 oracle 客户端驱动程序的 System.data.OracleClient

我有一个从asp.net1.1(VS2003)迁移到Asp.net2(VS2008)的Web应用程序。我在新版本上执行Oracleconnexion时遇到问题。开发环境是64位七。当使用所有CPU生成应用程序时,我在System.Data.OracleClient上遇到问题,异常System.BadImageFormatException:Tentativedechargementd'unprogramdeformatincorrect.(HRESULT异常:0x8007000B)。.我在x86CPU上生成,但在启动时出现此错误:[BadImageFormatException:Imp

在 Windows 上的 NetBeans 中从 C 项目创建 EXE 输出?

我是NetBeans新手。我在PC上使用NB。我刚刚清理并构建了一个项目,输出是:CLEANSUCCESSFUL(totaltime:1s)make:Nothingtobedonefor`all'.BUILDSUCCESSFUL(totaltime:1s)现在我似乎找不到任何可执行文件。如何设置IDE以创建从项目输出的EXE文件?更新-请阅读下面我的评论。 最佳答案 构建后,可执行文件应该位于类似PROJECT/dist/PLATFORM/project.exe的路径中(dist或build记不清了)

c - 我怎样才能在 C 中获得一个进程句柄而不是它的名字?

我正在WindowsXP上编写程序,试图获取calc.exe的进程句柄。我可以假设用户确实运行了calc.exe,但他可能更改了文件名。即使名称已更改,是否有一个名称可以获取calc.exe进程的句柄?我找到了这个答案,但它不处理顽皮用户更改名称(例如更改为calc_new.exe)的情况:HowcanIgetaprocesshandlebyitsnameinC++?我可以使用Win32进程的一些其他属性来查找句柄吗? 最佳答案 您可以使用以下Win32API调用序列执行此操作:使用Spy++或类似工具找到您定位的顶级窗口的类名。调

c - 如何获得安装的内存大小?

我想查询安装内存的大小。我使用了上面的代码:voidGetInstalledMemory(char*MemorySize){memset(MemorySize,0,sizeof(MemorySize));MEMORYSTATUSEXstatex;statex.dwLength=sizeof(statex);if(!GlobalMemoryStatusEx(&statex))strcpy(MemorySize,"N/A");elsesprintf(MemorySize,"%I64d",statex.ullTotalPhys/1024/1024);}//GetInstalledMemory

c - 在 x,y 位置的 Windows 控制台中打印

我想在Windows的标准控制台上的某个(X,Y)位置打印。我尝试使用conio.h,但已弃用/不存在。gotoxy(x,y)方法似乎是我想要的。我试过这些方法,但它只会打印额外的字符:printf("%c[%d;%df",0x1B,y,x);printf("\x1B%c[%d;%df",0x1B,y,x);printf("\x1B[%d;%dH",0x1B,y,x);提前致谢。 最佳答案 在控制台中定位光标的WindowsAPI调用是SetConsoleCursorPosition.正如有人评论的那样,“curses”是一个跨平台

c - 如何将控制台中的文本保存到 C 中的字符串(Windows 平台)

我目前正在为一个学校项目构建一个控制台应用程序,我的应用程序确实需要这个功能。如何将控制台中的所有文本保存为C(Windows平台)中的字符串?例如:如果我使用函数system("dir"),它会输出到控制台并列出目录中的所有子目录和文件。我希望将它保存在一个字符串中以备后用。 最佳答案 你可以使用popen()而不是system():#include#includeintmain(){FILE*fp;charpath[PATH_MAX];fp=popen("DIR","r");if(fp==NULL){/*Handleerror*

c - 如何使用 fgets 在 for 循环中计算磁盘读取速度(以 MB/s 为单位)

我有以下功能for(i=0;i它用文件指针流fp中的字符串填充“指向X字符数组的X字符数组的指针”。变量lines是数字文件的行数(预先计算)。我想计算fgets操作的读取速度。但是我不确定该怎么做,也不确定“公式” 最佳答案 使用clock_gettime获取一些时间,并将其包裹在fgets周围。然后从b中适本地减去a,您就有了执行fgets所需的时间(和一个clock_gettime调用)。#includestructtimespeca,b;clock_gettime(CLOCK_MONOTONIC,&a);fgets(...)